package com.heiye.blog.ai.servie;

import com.heiye.blog.ai.model.vo.*;
import com.heiye.blog.framework.common.response.Response;
import com.heiye.blog.framework.mybatis.response.PageResponse;
import reactor.core.publisher.Flux;

/**
 * @author: heiye
 * @date: 2025/10/09 下午8:28
 * @version: v1.0.0
 * @description: 对话
 */
public interface ChatService {
    /**
     * 新建对话
     *
     * @param newChatReqVO
     * @return
     */
    Response<NewChatRspVO> newChat(NewChatReqVO newChatReqVO);

    /**
     * 流式对话
     *
     * @param aiChatReqVO
     * @return
     */
    Flux<AIResponse> chat(AiChatReqVO aiChatReqVO);

    /**
     * 查询历史消息
     *
     * @param findChatHistoryMessagePageListReqVO
     * @return
     */
    PageResponse<FindChatHistoryMessagePageListRspVO> findChatHistoryMessagePageList(FindChatHistoryMessagePageListReqVO findChatHistoryMessagePageListReqVO);

    /**
     * 查询历史对话
     *
     * @param findChatHistoryPageListReqVO
     * @return
     */
    PageResponse<FindChatHistoryPageListRspVO> findChatHistoryPageList(FindChatHistoryPageListReqVO findChatHistoryPageListReqVO);

    /**
     * 重命名对话摘要
     *
     * @param renameChatReqVO
     * @return
     */
    Response<?> renameChatSummary(RenameChatReqVO renameChatReqVO);

    /**
     * 删除对话
     *
     * @param deleteChatReqVO
     * @return
     */
    Response<?> deleteChat(DeleteChatReqVO deleteChatReqVO);

}
